/*
 * @Description: 多语言文件
 * @Author: kanglin
 * @Date: 2018-05-31 14:33:47
 * @Copyright: Created by Panxsoft.
 */
import Vue from 'vue';
import VueI18n from 'vue-i18n';
import { parseLanguageParameter } from 'src/utils/helper';
import zhCN from './languages/zh-cn';
import zhTW from './languages/zh-tw';
import enUS from './languages/en-us';

Vue.use(VueI18n);

/**
 *  读取本地语言
 */
const current_locale = parseLanguageParameter(); // getCurrentLocale();
// Vue.config.lang = current_locale;
/**
 *  语言文件配置
 */
const messages = {
	'zh-CN': zhCN,
	'zh-TW': zhTW,
	'en-US': enUS,
};

/**
 * 配置 i18n
 */
export const i18n = new VueI18n({
	locale: current_locale,
	// fallbackLocale: 'zh-CN',
	messages,
});

/**
 * 切换语言
 * @param {string} locale
 */
export function setLocale(locale) {
	// Vue.config.lang = locale; // iview 的语言切换方式
	i18n.locale = locale; // i18n 的切换方式
}

/**
 * 翻译
 * @param {string} path
 * @param {object} options
 */
export function $t(path, options) {
	return i18n.t(path, options);
}

/**
 *  获取当前语言
 * @return {string} language
 */
export function getLanguage() {
	return i18n.locale;
}

const language = {
	options: 'zh-CN',
};

/**
 * 设置语言
 *  @return {string} language
 */
export function setLanguageOptions(name) {
	language.options = name;
}

/**
 * 获取语言选项
 *  @return {string} language
 */
export function getLanguageOptions() {
	return language.options;
}

/**
 *  后端的英文是 en , 中文是 zh-CN，繁中是zh-TW
 */
export function getLanguageForBackEnd() {
	const MAP = { 'en-US': 'en', 'zh-CN': 'zh-CN', 'zh-TW': 'zh-TW' };
	const lang = getLanguage();
	return MAP[lang] || 'zh-CN';
}
